<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <my-content></my-content>
    <my-footer></my-footer>
  </div>
</body>
<template id="content">
  <div>
    {{ msg }}
  </div>
</template>
<template id="footer">
  <ul>
    <li @click="changeTitle('首页')">首页</li>
    <li @click="changeTitle('分类')">分类</li>
    <li @click="changeTitle('购物车')">购物车</li>
    <li @click="changeTitle('我的')">我的</li>
  </ul>
</template>
<script src="lib/vue.js"></script>
<script>
  // 重要事件总线传值

  // 1.创建Vue的实例作为中央事件总线 bus
  // 2.在需要使用数据的地方，通过 bus.$on('自定义的事件', 回调函数) 监听数据，回调函数的默认参数就是需要接收的数据
  // 3.在需要传递数据的地方，通过 bus.$emit('自定义的事件', 参数) 传递数据
  // 先监听 后传递 （微信公众号 - 先关注，发文章，收到文章）
  const bus = new Vue()

  const Content = {
    template: `#content`,
    data () {
      return {
        msg: '首页'
      }
    },
    mounted () {
      bus.$on('my-event', (val) => {
        this.msg = val
      })
    }
  }

  const Footer = {
    template: `#footer`,
    methods: {
      changeTitle (title) {
        // 此处传值
        bus.$emit('my-event', title)
      }
    }
  }
  

  new Vue({
    el: '#app',
    components: {
      MyContent: Content,
      MyFooter: Footer
    }
  })
</script>
</html>